﻿
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;

using QLInternet.Connection;
using QLInternet.Model;
using QLInternet.ViewModel;

namespace QLInternet
{
	/// <summary>
	/// Interaction logic for FmLogin.xaml
	/// </summary>
	public partial class FmLogin : Window
	{
        private Connect conn;
        private DangKy dk;
        private Query qr;
        public int maQuyen = 0;
        private String chucVu = "";
		public FmLogin()
		{
			this.InitializeComponent();
            conn = new Connect("localhost", "internet", "root", "");
            dk = new DangKy();
            qr = new Query();
            txtTaiKhoan.Focus();
		}


        private void btnDangNhap_Click(object sender, RoutedEventArgs e)
        {
           
            login();
        }

        public void login()
        {
            try
            {
                conn.getConnect();
            }
            catch
            {
                return;
            }

            String users = txtTaiKhoan.Text;
            String passWord = txtMatKhau.Password;
            if (maQuyen == 0)
            {
                MessageBox.Show("Bạn chưa chọn quyền đăng nhập !!!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                return;
            }
            if (users.Equals("") || passWord.Equals(""))
            {
                MessageBox.Show("Vui lòng nhập đầy đủ thông tin !!!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                txtTaiKhoan.Focus();
                return;
            }
            String queryUsers = qr.sqlUsers + users + "' and maquyen = " + maQuyen;
            String queryPassWord = qr.sqlPassWord + users + "' and Matkhau like '" + passWord + "'";
            if (users.Length < 4 || users.Length > 32)
            {
                MessageBox.Show("Tài khoản phải có tối thiểu 4 kí tự và nhỏ hơn 32 kí tự !!! ", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                txtTaiKhoan.Text = "";
                txtMatKhau.Password = "";
                txtTaiKhoan.Focus();
                return;
            }

            if (passWord.Length < 4 || passWord.Length > 32)
            {
                MessageBox.Show("Mật khẩu  phải có tối thiểu 4 kí tự và nhỏ hơn 32 kí tự !!! ", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                txtMatKhau.Password = "";
                txtMatKhau.Focus();
                return;
            }

            if (!dk.isExist(conn, queryUsers))
            {
                MessageBox.Show("Tài khoản không tồn tại !!! ", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                txtTaiKhoan.Text = "";
                txtMatKhau.Password = "";
                txtTaiKhoan.Focus();
                return;
            }
            if (dk.isExist(conn, queryUsers) && !dk.isExist(conn, queryPassWord))
            {
                MessageBox.Show("Mật khẩu không hợp lệ !!! ", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                txtMatKhau.Password = "";
                txtMatKhau.Focus();
                return;
            }

            MainWindow main = new MainWindow();
            main.maQuyen = maQuyen;
            this.Hide();
            main.chucVu = chucVu;
            main.users = txtTaiKhoan.Text;
            main.passWord = txtMatKhau.Password;
            main.conn = conn;
            main.dk = dk;
            main.qr = qr;
            main.ShowDialog();
            Application.Current.Shutdown();
        }

        private void radNV_Checked(object sender, RoutedEventArgs e)
        {
            maQuyen = 1;
            chucVu = "Nhân viên";
            txtTaiKhoan.Focus();
        }

        private void radKt_Checked(object sender, RoutedEventArgs e)
        {
            maQuyen = 2;
            chucVu = "Kỹ thuật";
            txtTaiKhoan.Focus();
        }

        private void radQl_Checked(object sender, RoutedEventArgs e)
        {
            maQuyen = 3;
            chucVu = "Quản lý";
            txtTaiKhoan.Focus();
        }

        private void btnThoat_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown();
        }

        private void txtTaiKhoan_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
                login();
   
        }

        private void txtMatKhau_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Enter)
                login();
        }
	}
}